BNR Prolog
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
BNR Prolog, also known as CLP(BNR), is a declarative constraint logic programming language based on relational interval arithmetic developed at Bell-Northern Research in the 1980s and 1990s. Embedding relational interval arithmetic in a logic programming language differs from other constraint logic programming (CLP) systems like CLP(R) or Prolog-III in that it does not perform any symbolic processing. BNR Prolog was the first such implementation of interval arithmetic in a logic programming language.cite-ref-1[1] Since the constraint propagation is performed on real interval values, it is possible to express and partially solve non-linear equations.cite-ref-2[2]
Contents
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Example rule
tan x = y {\displaystyle \tan x=y}
x 2 + y 2 = 5 {\displaystyle x^{2}+y^{2}=5}
are expressed in CLP(BNR) as:
?- {X>=0,Y>=0, tan(X)==Y, X**2 + Y**2 == 5}.
and a typical implementation's response would be:
X = _58::real(1.0966681287054703,1.0966681287054718),
Y = _106::real(1.9486710896099515,1.9486710896099542).
Yes
See also
References
cite-note-11. ↑ citerefrossivan-beekwalsh2006Rossi, Francesco; Van Beek, Peter; Walsh, Toby, eds. (2006). Handbook of constraint programming (Hardback). Elsevier. ISBN 9780444527264.
cite-note-22. ↑ citerefjaffarmaher1994Jaffar, Joxan; Maher, Michael J. (1994). "Constraint logic programming: a survey". The Journal of Logic Programming. 19–20. Elsevier: 503–581. doi:10.1016/0743-1066(94)90033-7.
General references
• J. G. Cleary, "Logical Arithmetic", Future Computing Systems, Vol 2, No 2, pp. 125–149, 1987.
• W. Older and A. Vellino, "Extending Prolog with Constraint Arithmetic on Real Intervals", in Proc. of the Canadian Conf. on Electrical and Computer Engineering, 1990.
• Older, W., and Benhamou, F., Programming in CLP(BNR), in: 1st Workshop on Principles and Practice of Constraint Programming, 1993.
External links